System and Method for Gathering Information Related to a Geographical Location of a Caller in an Internet-Based Communication System

ABSTRACT

In a telecommunication system having at least two communicants (i.e., a caller and a callee), a system and method are presented for collecting information associated with the geographical location of either of the communicants from a server. In one embodiment, the approach entails receiving an invite to an Internet telephony session from an Internet telephony caller device, wherein the invite to the Internet telephony session includes an Internet address of the Internet telephony caller device. Additionally, the approach includes a retrieving of a geographical location corresponding to the Internet address of the Internet telephony caller device, and collecting geographical location information associated with the retrieved geographical location.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of copending U.S. utility applicationentitled, “System and Method for Gathering Information Related to aGeographical Location of a Caller in an Internet-Based CommunicationSystem,” having Ser. No. 10/201,706, filed Jul. 23, 2002, which isentirely incorporated herein by reference.

FIELD OF INVENTION

The present invention relates generally to telecommunications, and, moreparticularly, to a system and method for gathering information relatedto a geographical location.

BACKGROUND

Modern communications systems permit callers and callees, who are oftenseparated by great distances, to freely dialogue with one another.However, when a caller initiates a call (or session) to a callee, verylittle information about the callee may be available to the caller priorto establishing a session. Similarly, when a callee receives a call froma caller, very little information about the caller may be available tothe callee until a session has been established. In some instances,additional information about a caller or callee may facilitate dialoguebetween the two parties. To date, very little is available to providesuch information in a communication system. A need, therefore, exists inthe industry to address this deficiency.

SUMMARY

In architecture, one embodiment, among others, of the system comprisesInternet telephony logic configured to respond to an invite to anInternet telephony session from an Internet telephony caller device,wherein the invite to the Internet telephony session includes anInternet address of the Internet telephony caller device. Thisembodiment of the system further comprises geographical locationretrieval logic configured to retrieve a geographical locationcorresponding to the Internet address of the Internet telephony callerdevice, and information collection logic configured to collectgeographical location information associated with the retrievedgeographical location.

Another embodiment, among others, may be seen as a method comprising thestep of receiving an invite to an Internet telephony session, whereinthe invite to the Internet telephony session includes an Internetaddress of a Internet telephony caller device. This embodiment of themethod further comprises the steps retrieving a geographical locationcorresponding to the Internet address of the Internet telephony callerdevice, and collecting geographical location information associated withthe retrieved geographical location.

Other systems, methods, features, and advantages of the presentinvention will be or become apparent to one with skill in the art uponexamination of the following drawings and detailed description. It isintended that all such additional systems, methods, features, andadvantages be included within this description, and be within the scopeof the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the invention can be better understood with reference tothe following drawings. The components in the drawings are notnecessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the present invention. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a block diagram showing an Internet telephony system of theprior art, in which a caller device and a callee device are engaged inInternet telephony.

FIGS. 2A and 2B are flowcharts showing one process associated with thesystem of FIG. 1.

FIGS. 3A through 3E are flowcharts showing another process associatedwith the system of FIG. 1.

FIG. 4 is a block diagram showing another Internet telephony system ofthe prior art, in which a caller device and a callee device are engagedin Internet telephony.

FIGS. 5A and 5B are flowcharts showing one process associated with thesystem of FIG. 4.

FIG. 6 is a block diagram showing a telephony system in a publicswitched telephone network (PSTN), in which a caller telephonecommunicates with a callee telephone.

FIGS. 7A and 7B are flowcharts showing one process associated with thesystem of FIG. 6.

FIG. 8 is a block diagram showing one embodiment of an Internettelephony system, in which a caller device and a callee device areconfigured to retrieve location information.

FIG. 9A is a block diagram showing the caller device of FIG. 8 ingreater detail.

FIG. 9B is a block diagram showing the callee device of FIG. 8 ingreater detail.

FIGS. 10A through 10D are flowcharts showing one embodiment of a processfor obtaining location information in an Internet telephony system.

FIGS. 11A through 11G are flowcharts showing another embodiment of aprocess for obtaining location information in an Internet telephonysystem.

FIG. 12 is a block diagram showing another embodiment of an Internettelephony system, in which a caller device and a callee device areconfigured to retrieve location information.

FIGS. 13A through 13D are flowcharts showing one embodiment of a processfor obtaining location information in an Internet telephony system.

FIG. 14 is a block diagram showing one embodiment of a PSTN telephonysystem, in which a PSTN caller and a PSTN callee may retrieve locationinformation.

FIG. 15A is a block diagram showing the caller computer of FIG. 14 ingreater detail.

FIG. 15B is a block diagram showing the callee computer of FIG. 14 ingreater detail.

FIGS. 16A through 16D are flowcharts showing one embodiment of a processfor obtaining location information in a PSTN telephony system.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Having summarized various aspects of the present invention, reference isnow made in detail to the description of the embodiments as illustratedin the drawings. While the several embodiments are described inconnection with these drawings, there is no intent to limit theinvention to the embodiment or embodiments disclosed herein. On thecontrary, the intent is to cover all alternatives, modifications, andequivalents included within the spirit and scope of the invention asdefined by the appended claims.

FIG. 1 is a block diagram showing an Internet telephony system of theprior art, in which a caller device 101 and a callee device 105 areengaged in Internet telephony. As shown in the environment of FIG. 1, anInternet telephony caller device 101 establishes a session with anInternet telephony callee device 105 through a proxy server 103, whichmay be located within the Internet 100. The Internet telephony callerdevice 101 may be a general-purpose computer, a session initiationprotocol (SIP) telephone, or any programmable device that is configuredto engage in Internet telephony. Once the session has been establishedbetween the Internet telephony caller device 101 and the Internettelephony callee device 105 through the proxy server 103, the Internettelephony caller device 101 and the Internet telephony callee device 105may engage directly in the session without the assistance of the proxyserver 103. In a preferred embodiment, the session is established overthe Internet 100. A prior art method, which uses the system of FIG. 1,is shown in FIGS. 2A and 2B.

FIGS. 2A and 2B are flowcharts showing one process associated with thesystem of FIG. 1. In the embodiment of FIG. 2A, the process begins whenan Internet telephony caller device 101 sends, in step 204, an inviterequest having a universal resource identifier (URI) of a desiredcallee. The URI may be a hypertext markup language (HTML) address, afile transfer protocol (FTP) address, a session initiation protocol(SIP) address, an email address, or any number of other identifiers. Inthe specific embodiment of FIG. 2A, the URI is a SIP address. The inviterequest sent 204 by the Internet telephony caller device 101 isreceived, in step 206, by a proxy server 103. The proxy server thencontacts, in step 208, a location service (not shown) using the received206 URI. If, as in the embodiment of FIGS. 2A and 2B, the request is anon-forking request 211 in which there is only one Internet protocol(IP) address located for the URI, then the proxy server 103 obtains, instep 210, the precise Internet address of the Internet telephony calleedevice 105, and issues, in step 212, an invite request to the obtainedIP address. The issued 212 invite request is received, in step 214, bythe Internet telephony callee device 105 from the proxy server 103.

At this point, the process continues in FIG. 2B, wherein the Internettelephony callee device 105 returns, in step 226, a success indicationto the proxy server 103. The proxy server 103 receives, in step 228, thesuccess indication from the Internet telephony callee device 105, andrelays, in step 230, the success indication to the Internet telephonycaller device 101. The relayed 230 success indication is received instep 232 by the Internet telephony caller device 101, which issues, instep 234, an acknowledgement of receipt, and transmits, in step 236, theacknowledgement to the proxy server 103. The proxy server 103 receives,in step 238, the acknowledgement from the caller device 101, andforwards, in step 240, the acknowledgement to the Internet telephonycallee device 105. The Internet telephony callee device 105 receives, instep 242, the acknowledgement from the proxy server 103, therebyestablishing a session between the Internet telephony caller device 101and the Internet telephony callee device 105. Thus, as shown in theembodiment of FIGS. 2A and 2B, once the SIP session has been establishedbetween the Internet telephony caller device 101 and the Internettelephony callee device 105, a caller and a callee may freely dialogueusing the established session.

While FIGS. 2A and 2B describe a process that is specific to SIP, itwill be clear to one of ordinary skill in the art that other well-knownInternet telephony sessions may be established using similar procedures.Additionally, while the session is described in terms of Internettelephony devices 101, 105, it will be clear to one of ordinary skill inthe art that the Internet telephony devices 101, 105 may begeneral-purpose computers, SIP telephones, or any programmable deviceconfigured to engage in Internet telephony. Furthermore, since theprocess associated with a non-forking request 211 is described in detailin RFC 2543, further discussion of the process is omitted here. In anyevent, it can be seen from the process of FIGS. 2A and 2B that, whilethe Internet telephony caller device 101 has knowledge of the IP addressof the Internet telephony callee device 105, and vice versa, neither theInternet telephony caller device 101 nor the Internet telephony calleedevice 105 has much more information than the IP address.

FIGS. 3A through 3E are flowcharts showing another process associatedwith the system of FIG. 1. Unlike the process described with referenceto FIGS. 2A and 2B, which describe a non-forking request 211, theprocess of FIGS. 3A through 3E describe method steps associated with aparallel forking proxy 312. In this sense, rather than having a singleIP address associated with the callee URI, the process of FIGS. 3Athrough 3E addresses a situation in which multiple IP addresses areassociated with the callee URI. As such, the process begins with anInternet telephony caller device 101 sending, in step 304, an inviterequest, which has a URI of a callee. The invite request having the URIis received, in step 306, by a proxy server 103, which contacts, in step308, a location service (not shown) using the received 306 URI. Theproxy server 103 then obtains, in step 310, the precise Internetaddresses of the Internet telephony callee device 105 from the locationservice. Since the process of FIGS. 3A through 3E relate to a situationin which multiple IP addresses are associated with the URI, the proxyserver 103 issues parallel forking requests 312. For purposes ofillustration, this may be seen as the proxy server 103 issuing, in step314, an invite request to the first obtained 310 Internet address, anddetermining, in step 316, whether or not invitations have been issuedfor all obtained 310 IP addresses. If it is determined 316 that not allinvite requests have been issued, then the proxy server issues, in step318, another invite request to the next obtained 310 IP address, andagain determines 316 whether or not invitations have been issued for allobtained 310 IP addresses. If, on the other hand, it is determined 316that all invite requests have been issued, then the process continues toFIG. 3B.

FIG. 3B shows an interchange between the Internet telephony calleedevice 105 and the proxy server 103 for a parallel forking proxy 312.While only one Internet telephony callee device 105 is shown forsimplicity, it will be clear to one of ordinary skill in the art that anInternet telephony callee device 105 at each of the obtained 310 IPaddresses function similarly to acknowledge or reject the inviterequest. As such, once all invite requests have been issued, each of theInternet telephony callee devices 305 receives, in step 323, an inviterequest. Upon receiving 323 the invite request, it is determined, instep 324, whether or not the Internet telephony callee device 105 islogged on (i.e., present) on the Internet 100. If it is determined 324that the Internet telephony callee device 105 is not logged on, then anot found response is returned, in step 326, to the proxy server 103,which acknowledges, in step 328, the not found response from theInternet telephony callee device 105. However, if it is determined 324that the Internet telephony callee device 105 is logged on, then asuccess indication is returned, in step 330, to the proxy server 103.Thus, if multiple IP addresses return success indications, then theproxy server 103 receives, in step 332, multiple success indicationsfrom each of the logged-on Internet telephony callee devices 105, andrelays, in step 334, the success indications to the Internet telephonycaller device 101, and the process continues in FIG. 3C.

As shown in FIG. 3C, the Internet telephony caller device 101 receives,in step 340, the first success indication from the proxy server 103, andissues, in step 342, an acknowledgement of the receipt of the successindication. The Internet telephony caller device 101 then transmits, instep 344, the issued 342 acknowledgement to the proxy server 103, anddetermines, in step 346, whether or not there are additional successindications. If it is determined 346 that there are additional successindications, then the Internet telephony caller device 101 receives, instep 350, the next success indication from the proxy server 103, and theprocess repeats from the issuing step 342 until all success indicationshave been received. If, on the other hand, it is determined 346 thatthere are no additional success indications, then the Internet telephonycaller device 101 determines, in step 348, whether or not only onesuccess indication was received. If only one success indication wasreceived by the Internet telephony caller device 101, then the processcontinues in FIG. 3D. However, if more than one success indication wasreceived by the Internet telephony caller device 101, then the processcontinues in FIG. 3E.

FIG. 3D shows establishment of a SIP session when only one successindication is received by the Internet telephony caller device 101.Since, in FIG. 3D, only one acknowledgement is issued 342 by theInternet telephony caller device 101, the proxy server 103 receives, instep 356, the acknowledgement, and forwards, in step 358, theacknowledgement to the Internet telephony callee device 105, whichreceives, in step 360, the acknowledgement from the proxy server 103,thereby establishing a session between the Internet telephony callerdevice 101 and the Internet telephony callee device 105. Once thesession has been established, the caller and the callee are free todialogue using the established session.

FIG. 3E shows establishment of a SIP session when multiple successindications are received by the Internet telephony caller device 101.Since multiple acknowledgements have been issued 342 by the Internettelephony caller device 101, the proxy server 103 receives, in step 366,multiple acknowledgements. The multiple acknowledgements are thenforwarded, in step 368, to each of the Internet telephony callee devices105 that are logged on. Each of the Internet telephony callee device 105receives, in step 370, the acknowledgement from the proxy server 103, atwhich point multiple session are established between the Internettelephony caller device 101 and the multiple Internet telephony calleedevices 105 that are logged on. A caller at the Internet telephonycaller device 101 may further determine, in step 372, which of themultiple established sessions is the desired session, and disconnect, instep 374, all of the undesired sessions, thereby continuing the sessionwith only the desired callee at the desired Internet telephony calleedevice 105.

While FIGS. 3A through 3E describe a process that is specific to SIP, itwill be clear to one of ordinary skill in the art that other well-knownInternet telephony sessions may be established using similar procedures.Additionally, while the session is described in terms of Internettelephony devices 101, 105, it will be clear to one of ordinary skill inthe art that the Internet telephony devices 101, 105 may begeneral-purpose computers, SIP telephones, or any programmable deviceconfigured to engage in Internet telephony. Furthermore, since theprocess associated with a parallel forking requests 312 is described indetail in RFC 2543, further discussion of the process is omitted here.In any event, it can be seen from the process of FIGS. 3A through 3Ethat, while the Internet telephony caller device 101 again has knowledgeof the IP address of the Internet telephony callee device 105, and viceversa, neither the Internet telephony caller device 101 nor the Internettelephony callee device 105 has much more information than the IPaddress.

FIG. 4 is a block diagram showing another Internet telephony system ofthe prior art, in which an Internet telephony caller device 101 and anInternet telephony callee device 105 are engaged in Internet telephony.As shown in the environment of FIG. 4, an Internet telephony callerdevice 101 establishes a session with an Internet telephony calleedevice 105 by using a redirect server 401, which may be located withinthe Internet 100. Again, the Internet telephony caller device 101 may bea general-purpose computer, a SIP telephone, or any programmable devicethat is configured to engage in Internet telephony. Once an IP addressof the Internet telephony callee device 105 has been obtained by theInternet telephony caller device 101 from the redirect server 401, theInternet telephony caller device 101 may establish a session with theInternet telephony callee device 105. In a preferred embodiment, thesession is established over the Internet 100. A prior art method, whichuses the system of FIG. 4, is shown in FIGS. 5A and 5B.

FIGS. 5A and 5B are flowcharts showing one process associated with thesystem of FIG. 4. In the embodiment of FIG. 5A, the process begins whenan Internet telephony caller device 101 sends, in step 504, an inviterequest having a URI of a desired callee. The URI may be a HTML address,a FTP address, a SIP address, an email address, or any number of otheridentifiers. In the specific embodiment of FIG. 5A, the URI is a SIPaddress. The invite request sent 504 by the Internet telephony callerdevice 101 is received, in step 506, by a redirect server 401. Theredirect server 401 contacts, in step 508, a location service (notshown) using the URI in the received 506 invite request. A precise IPaddress of the Internet callee device 105 is then obtained, in step 510,from the location service, and the obtained IP address is returned, instep 512, to the Internet telephony caller device 101. The Internettelephony caller device 101 receives, in step 514, the obtained Internetaddress from the redirect server 401, and issues, in step 516, anacknowledgement of the receipt of the IP address. The acknowledgement isthen transmitted, in step 518, by the Internet telephony caller device101 to the redirect server 401. Additionally, the Internet telephonycaller device 101 sends, in step 522, an invite request to the obtainedIP address, which is assigned to an Internet telephony callee device105. The Internet telephony callee device 105 receives, in step 524, theinvite request from the Internet telephony caller device 101, and theprocess continues in FIG. 5B.

As shown in FIG. 5B, once the invite request has been received 524, theInternet telephony callee device 105 returns, in step 534, a successindication to the Internet telephony caller device 101. The Internettelephony caller device 101 receives, in step 536, the successindication from the Internet telephony callee device 105, and issues, instep 538, an acknowledgement of the receipt of the success indication.The acknowledgement is then transmitted, in step 540, from the Internettelephony caller device 101 to the Internet telephony callee device 105.The Internet telephony callee device 105 receives, in step 542, theacknowledgement from the Internet telephony caller device 101, therebyestablishing a session with the Internet telephony caller device 101.Thus, as shown in the embodiment of FIGS. 5A and 5B, once the SIPsession has been established between the Internet telephony callerdevice 101 and the Internet telephony callee device 105, a caller and acallee may freely dialogue using the established session.

While FIGS. 5A and 5B describe a process that is specific to SIP, itwill be clear to one of ordinary skill in the art that other well-knownInternet telephony sessions may be established using similar procedures.Additionally, while the session is described in terms of Internettelephony devices 101, 105, it will be clear to one of ordinary skill inthe art that the Internet telephony devices 101, 105 may begeneral-purpose computers, SIP telephones, or any programmable deviceconfigured to engage in Internet telephony. Furthermore, since theprocess associated with the redirect server 401 is described in detailin RFC 2543, further discussion of the process is omitted here. In anyevent, it can be seen from the process of FIGS. 5A and 5B that, whilethe Internet telephony caller device 101 again has knowledge of the IPaddress of the Internet telephony callee device 105, and vice versa,neither the Internet telephony caller device 101 nor the Internettelephony callee device 105 has much more information than the IPaddress.

While several embodiments of Internet telephony sessions have been shownin FIGS. 1 through 5B to illustrate the deficiency associated withInternet telephony, similar deficiencies exist in public switchedtelephone network (PSTN) since current systems provide very littleinformation other than caller identification. This deficiency isillustrated through FIGS. 6, 7A, and 7B.

FIG. 6 is a block diagram showing a prior-art PSTN telephony system, inwhich a PSTN caller telephone 601 communicates with a PSTN calleetelephone 611. Since PSTN telephony systems are well known, only acursory discussion of PSTN is presented with reference to FIG. 6. Asshown in FIG. 6, a PSTN caller telephone 601 and a PSTN callee telephone611 are configured to communicate with each other through a PSTN 600.The PSTN 600 includes a caller service switching point (SSP) 603, whichis configured to connect both outgoing and incoming calls to the PSTNcaller telephone 603 through the PSTN 600. The PSTN 600 also includes acallee SSP 607, which is similarly configured to connect outgoing andincoming calls to the PSTN callee telephone 613. Both the caller SSP 603and the callee SSP 607 are configured to communicate with a servicecontrol point (SCP) 605, which, as is well-known, performs a variety ofadvanced intelligent network (AIN) functions including area numbercalling service, disaster recovery service, do not disturb service, and5-digit extension dialing service, etc. A broad overview of the systemof FIG. 6 may begin with a caller dialing a telephone number using thePSTN caller telephone 603. The dialed call is processed by the callerSSP 603, which contacts the SCP 605 for further call processing. The SCP605 contacts a callee SSP 607 with a connection request in order toconnect the call from the caller. The callee SSP 607 accepts theconnection request and connects the call through to the PSTN calleetelephone 611.

FIGS. 7A and 7B are flowcharts showing one process associated with theprior-art system of FIG. 6. Since call connection in a PSTN 600 are wellknown, only an abridged description is presented with reference to FIGS.7A and 7B. Specifically, the example of FIGS. 7A and 7B shows executionof an arbitrary advanced intelligent network (AIN) instruction using adialed feature code. As shown in FIG. 7A, a PSTN caller telephonereceives, in step 702, a feature code. A telephone number is thendialed, in step 704, and a caller service switching point 603 receives,in step 706, the dialed number with the feature code. Upon receiving 706the dialed number with the feature code, the caller service switchingpoint 603 issues, in step 708, a query to the service control point 605.The service control point 605 receives, in step 710, the query from theservice switching point, and issues, in step 712, an instructioncorresponding to the feature code. In response to the issued 712instruction, the service control point 605 executes, in step 714, an AINfunction corresponding to the feature code. Examples of AIN functions,which are well known in the art, include area number calling service,disaster recovery service, do not disturb service, five digit extensiondialing service, etc. Upon executing 714, the AIN function correspondingto the feature code, the service control point 605 instructs, in step716, the caller service switching point to continue the call processing.The caller service switching point receives, in step 718, a continueprocessing instruction from the service control point 605, and theprocess continues in FIG. 7B.

As shown in FIG. 7B, once the caller service switching point 603receives 718 the continue instruction, the caller service switchingpoint 603 issues, in step 724, a connection request to the callerservice switching point. The callee service switching point 609receives, in step 726, the connection request from the caller serviceswitching point and accepts, in step 728, the connection request. Oncethe connection request has been accepted 728, a call is connected instep 730, between the PSTN callee telephone 611 and the PSTN callertelephone 601. Thus, as shown in the embodiment of FIGS. 7A and 7B, oncethe PSTN telephone call has been established between the PSTN calleetelephone 611 and the PSTN caller telephone 601, a callee and a callermay freely dialogue using the established call through the PSTN 600.

As seen from FIGS. 7A and 7B, while a callee may know the caller'stelephone number through a mechanism such as caller ID, and the callermay know the callee's telephone number to which the caller has dialed,very little additional information is available to either the callee orthe caller during the process outlined in FIGS. 7A and 7B.

FIG. 8 is a block diagram showing one embodiment of an Internettelephony system, in which an Internet telephony caller device havinglocation information retrieval capabilities 801 and an Internettelephony callee device having location information retrievalcapabilities 805 are in communication with each other over the Internet100. The Internet telephony caller device having location informationretrieval capabilities 801 may be a general-purpose computer, a sessioninitiation protocol (SIP) telephone, or any programmable device that isconfigured to engage in Internet telephony. For simplicity, the Internettelephony caller device having location information retrievalcapabilities 801 is referred to hereinafter as alocation-information-retrieving caller device 801. Similarly, theInternet telephony callee device having location information retrievalcapabilities 805 may also be a general-purpose computer, a sessioninitiation protocol (SIP) telephone, or any programmable device that isconfigured to engage in Internet telephony. Again, for simplicity, theInternet telephony callee device having location information retrievalcapabilities 805 is referred to hereinafter as alocation-information-retrieving callee device 805.

In addition to the location-information-retrieving caller device 801 andlocation-information-retrieving callee device 805, the embodiment ofFIG. 8 includes a proxy server 103, an information server 803, and anInternet address location database 807, which are, preferably, locatedwithin the Internet 100. A broad overview of the operation begins withthe location-information-retrieving caller device 801 initiating asession with the location-information-retrieving callee device 805. Inthe embodiment of FIG. 8, a proxy server 103 is used to initiate thesession. During the initiation of the session, the proxy server 103relays the IP address of the location-information-retrieving calleedevice 805 to the location-information-retrieving caller device 801,and, also, relays the IP address of the location-information-retrievingcaller device 801 to the location-information-retrieving callee device805. Thus, as the session is being initiated, both thelocation-information-retrieving caller device 801 and thelocation-information-retrieving callee device 805 have knowledge of theother's IP address. Once the location-information-retrieving callerdevice 801 knows the IP address of the location-information-retrievingcallee device 805, the location-information-retrieving caller device 801accesses the Internet address location database 807 to obtain ageographical location associated with the IP address of thelocation-information-retrieving callee device 805. The obtainedgeographical location is then used to further retrieve geographicallocation information associated with the location-information-retrievingcallee device 805 from an information server 803. Similarly, once thelocation-information-retrieving callee device 805 knows the IP addressof the location-information-retrieving caller device 801, thelocation-information-retrieving callee device 805 accesses the Internetaddress location database 807 to obtain a geographical locationassociated with the IP address of the location-information-retrievingcaller device 801. The obtained geographical location is then used tofurther retrieve geographical location information associated with thelocation-information-retrieving caller device 801 from the informationserver 803. The information server 803 has various information relatedto geographic locations, such as local time, local weather reports,local news, local sporting events, etc. for any given geographicallocation. Thus, the information server 803 may comprise a plurality ofdatabases (not shown) such as Internet servers for weather (e.g.,www.weather.com, etc.), for sports (e.g., www.espn.com, etc.), for news(e.g., www.cnn.com, etc.), or a plethora of other Internet accessibledatabases. Alternatively, the information server 803 may be a dedicatedserver or system configured to locally store all of the geographicallocation information. Thus, either the location-information-retrievingcaller device 801 or the location-information-retrieving callee device805 may access the information server 803 to obtain informationassociated with a specific geographical location.

An embodiment of the location-information-retrieving caller device 801and the location-information-retrieving callee device 805 are shown ingreater detail in FIGS. 9A and 9B, respectively.

FIG. 9A is a block diagram showing the location-information-retrievingcaller device 801 of FIG. 8 in greater detail. As shown in FIG. 9A, thelocation-information-retrieving caller device 801 comprises an Internettelephony logic 930, which may include any hardware or softwarenecessary to engage in Internet telephony. Since hardware and softwareconfigured for Internet telephony are well known, further discussion ofInternet telephony hardware and software are omitted here. Thelocation-information-retrieving caller device 801 also comprises aninput device 918, which may be a computer keyboard, a mouse, a numerickeypad, or any number of well-known input peripheral devices.Additionally, the location-information-retrieving caller device 801comprises information collection logic 922, which includes a list ofitems 928 and selection logic 924. The list of items 928 may be a listshowing available information for a specific geographical location, suchas local time, local weather reports, local sporting events, local news,etc. from which a user may select desired items. For example, if a userdesires to only find out the local news and local weather report for agiven location, then the user may select only the local news and localweather report from the list of items. In this sense, the input device918 may be used to input a user's selection. The selected items 930 maybe stored in the information collection logic 922 for later use. Sincesystems and methods for selecting items from a list is well-known in theart, further discussion of the selection of the items is omitted here.

In addition to the input device 918 and the information collection logic922, the location-information-retrieving caller device 801 furthercomprises geographical location retrieval logic 902, an interface 912having a receiver 914 and a transmitter 916, and a display unit 926. Theinterface 912 is configured to receive information via the receiver 914and transmit information via the transmitter 916. In one embodiment, theinterface 912 receives the geographical location from the locationserver 1407, as well as the geographical location information from theinformation server 803. The geographical location retrieval logic 902retrieves and stores a specific geographical location from the locationserver 1407. This information is used by the information collectionlogic 922 during the retrieval of geographical location informationassociated with the callee's location. Once the desired information hasbeen collected by the information collection logic 922, the collectedinformation may be displayed on the display unit 926. As such, thedisplay unit 926 may be a computer monitor or any number of knowndisplay devices.

FIG. 9B is a block diagram showing the location-information-retrievingcallee device 805 of FIG. 8 in greater detail. Since, in thisembodiment, the operation of the location-information-retrieving calleedevice 805 is similar to the operation of thelocation-information-retrieving caller device 801, the components oflocation-information-retrieving callee device 805 are similar to thecomponents of location-information-retrieving caller device 801 of FIG.9A. As shown in FIG. 9B, the location-information-retrieving calleedevice 805 comprises Internet telephony logic 930 permits thelocation-information-retrieving callee device 805 to engage in Internettelephony. Since hardware and software for Internet telephony is wellknown, further discussion of Internet telephony hardware and software isomitted here. The location-information-retrieving callee device 805 alsocomprises an input device 918, which may be a computer keyboard, amouse, a numeric keypad, or any number of well-known input peripheraldevices. Additionally, the location-information-retrieving callee device805 comprises information collection logic 922, which includes a list ofitems 928 and selection logic 924. Similar to FIG. 9A, the list of items928 may be a list showing available information for a specificgeographical location, such as local time, local weather reports, localsporting events, local news, etc. from which a user may select desireditems. For example, if a user desires to only find out the local newsand local weather report for a given location, then the user may selectonly the local news and local weather report from the list of items. Inthis sense, the input device 918 may be used to input a user'sselection. The selected items 930 may be stored in the informationcollection logic 922 for later use. Since systems and methods forselecting items from a list is well-known in the art, further discussionof the selection of the items is omitted here.

In addition to the input device 918 and the information collection logic922, the location-information-retrieving callee device 805 furthercomprises geographical location retrieval logic 902, an interface 912having a receiver 914 and a transmitter 916, and a display unit 926. Theinterface 912 is configured to receive information via the receiver 914and transmit information via the transmitter 916. In one embodiment, theinterface 912 receives the geographical location from the locationserver 1407, as well as the geographical location information from theinformation server 803. The geographical location retrieval logic 902retrieves and stores a specific geographical location from the locationserver 1407. This information is used by the information collectionlogic 922 during the retrieval of geographical location informationassociated with the caller's location. Once the desired information hasbeen collected by the information collection logic 922, the collectedinformation may be displayed on the display unit 926. As such, thedisplay unit 926 may be a computer monitor or any number of knowndisplay devices.

Having described embodiments of systems for retrieving geographicallocation information, several embodiments of methods associated with theretrieval of geographical location information are shown in FIGS. 10Athrough 11G.

FIGS. 10A through 10D are flowcharts showing one embodiment of theprocess for obtaining location information in an internet telephonysystem, such as one shown in FIG. 8. As shown in FIG. 10A, the processbegins when an internet telephony caller device having locationinformation retrieval capabilities 801 sends, in step 1004, an inviterequest having a URI. A proxy server 103 receives, in step 1006, theinvite request having the URI, and contact, in step 1008, a locationservice (not shown) using the URI. The URI may be an HTML address, anFTP address, an SIP address, an email address, or any number of otheridentifiers used on the internet. If, as in the embodiment of FIGS. 10Athrough 10D, the request is a non-forking request 1011, in which thereis only one IP address located for the URI, then the proxy server 103obtains, in step 1010, a precise internet address of the Internettelephony callee device, and issues, in step 1012, an invite request tothe obtained internet address. The issued 1012 invite request is thenreceived, in step 1014, by the internet telephony callee device havinglocation information retrieval capabilities 805 from the proxy server103, and the process here continues to FIG. 10B. Additionally, theobtained internet address in relayed, in step 1018, to the internettelephony caller device having location information retrievalcapabilities 801. The internet telephony caller device having locationinformation retrieval capabilities 801 receives, in step 1020, theinternet address from the proxy server 103, and the process herecontinues in FIG. 10C.

Continuing in FIG. 10B, once the internet telephony callee device 805receives 1014 the invite request, the internet telephony callee device805 returns and step 1026, a success indication to the proxy server 103.Upon returning 1026 the success indication to the proxy server 103, thegeographical location information retrieval process continues in FIGS.10D, while the session initiation process continues in FIG. 10B.

The session initiation process continues in FIG. 10B with the proxyserver 103 receiving, in step 1028, the success indication, andrelaying, in step 1030, the success indication to thelocation-information-retrieving caller device 801. Thelocation-information-retrieving caller device 801 receives, in step1032, the success indication from the proxy server 103, and issues, instep 1034, an acknowledgement of the receipt of the success indication.The issued 1034 acknowledgement is then transmitted, in step 1036, tothe proxy server 103 by the location-information-retrieving callerdevice 801. The proxy server 103 receives, in step 1038, theacknowledgement from the location-information-retrieving caller device801, and forwards, in step 1040, the acknowledgement to thelocation-information-retrieving callee device 805. Thelocation-information-retrieving callee device 805 receives, in step1042, the acknowledgement from the proxy server 103, therebyestablishing a session between the location-information-retrievingcaller device 801 and the location-information-retrieving callee device805 over the Internet 100.

FIG. 10C is a flowchart showing one embodiment of a geographicallocation information retrieval process from the perspective of thelocation-information-retrieving caller device 801 once thelocation-information-retrieving caller device 801 has the IP address ofthe location-information-retrieving callee device 805. As shown in FIG.10C, once the IP address of the location-information-retrieving calleedevice 805 is received 1020 by the location-information-retrievingcaller device 801, the location-information-retrieving caller device 801retrieves, in step 1053, the geographical location of thelocation-information-retrieving callee device 805 from the informationserver 803. In a preferred embodiment, the retrieval 1053 of thegeographical location is performed by the geographical locationretrieval logic 902 (FIG. 9A). Once the geographical location has beenretrieved 1053, the location-information-retrieving caller device 801requests, in step 1054, information that is related to the retrieved1053 geographical location from the information server 803. In apreferred embodiment, the caller has already inputted a list of selecteditems 926 into the location-information-retrieving caller device 801.Thus, only the selected items 926 are requested by thelocation-information-retrieving caller device 801. The informationserver 803 receives, in step 1055, the request, and obtains, in step1056, the requested information. The obtained 1056 information is thentransmitted, in step 1057, from the information server 803 to thelocation-information-retrieving caller device 801. Thelocation-information-retrieving caller device 801 receives, in step1058, the requested information, and displays, in step 1059, thereceived information on a display 926 (FIG. 9A).

FIG. 10D is a flowchart showing one embodiment of a geographicallocation information retrieval process from the perspective of thelocation-information-retrieving callee device 805 once thelocation-information-retrieving callee device 805 has the IP address ofthe location-information-retrieving caller device 801. As shown in FIG.10D, once the IP address of the location-information-retrieving callerdevice 801 is known by the location-information-retrieving callee device805 (e.g., after the success indication has been returned 1026), thelocation-information-retrieving callee device 805 retrieves, in step1073, the geographical location of the location-information-retrievingcaller device 801 from the information server 803. In a preferredembodiment, the retrieval 1073 of the geographical location is performedby the geographical location retrieval logic 902 (FIG. 9B). Once thegeographical location has been retrieved 1073, thelocation-information-retrieving callee device 805 requests, in step1074, information that is related to the retrieved 1073 geographicallocation from the information server 803. In a preferred embodiment, thecallee has already inputted a list of selected items 926 into thelocation-information-retrieving callee device 805. Thus, only theselected items 926 are requested by the location-information-retrievingcallee device 805. The information server 803 receives, in step 1075,the request, and obtains, in step 1076, the requested information. Theobtained 1076 information is then transmitted, in step 1077, from theinformation server 803 to the location-information-retrieving calleedevice 805. The location-information-retrieving callee device 805receives, in step 1078, the requested information, and displays, in step1079, the received information on a display 926 (FIG. 9B).

As shown by FIGS. 10A through 10D, the location-information-retrievingcaller device 801 now has local geographical information associated withthe location-information-retrieving callee device 805. Similarly, thelocation-information-retrieving callee device 805 has local geographicalinformation associated with the location-information-retrieving callerdevice 801. In this sense, the information related to the specificgeographic location of both the callee and the caller may facilitatedialogue between the callee and the caller.

FIGS. 11A through 11G are flowcharts showing another embodiment of aprocess for obtaining location information in an Internet telephonysystem. In the embodiment of FIGS. 11A through 11G, an example ofparellel forking requests is shown. As such, the process begins when alocation-information-retrieving caller device 801 sends, in step 1104,an invite request having a URI of a callee to a proxy server 103. Theproxy server 103 receives, in step 1106, the invite request having theURI, and contacts, in step 1108, a location service (not shown) usingthe URI. Upon contacting the location service (not shown), the proxyserver 103 obtains, in step 1110, precise Internet addresses of multiplelocation-information-retrieving callee devices 805 that are associatedwith the URI. Once the precise Internet addresses are obtained 1110, theproxy server 103 issues, in step 1114, an invite request to the firstobtained Internet address, and determines, in step 1115, whether or notinvitations have been issued to all of the obtained IP addresses. If ithas been determined 1115 that not all invitations have been issued, thenthe proxy server 103 issues, in step 1116, an invite request to the nextobtained Internet address, and again determines 1115 whether or not allinvitations have been issued. Once invitations have been issued to allobtained IP addresses, the process continues in FIG. 11B.

FIG. 11B is a flowchart showing a continuation of the process from FIG.11A. While only one location-information-retrieving callee device 805 isshown for convenience, it will be clear to one of ordinary skill in theart that, for parallel forking requests 1112, multiplelocation-information-retrieving callee devices 805 receive invitations.Hence, while only one location-information-retrieving callee device 805is shown, it should be evident that similar processes occur at eachlocation-information-retrieving callee device 805 that receives aninvite request. Continuing, once the proxy server 103 issues all inviterequests, each location-information-retrieving callee device 805receives, in step 1122, the invite request from the proxy server 103,and it is determined, in step 1123, whether or not thelocation-information-retrieving callee device 805 is logged onto theInternet. If it is determined 1123 that thelocation-information-retrieving callee device 805 is not logged onto theInternet, then a not found response is returned, in step 1124, to theproxy server 103, which acknowledges, in step 1126, the not foundresponse. If, on the other hand, the location-information-retrievingcallee device 805 is logged onto the Internet, then a success indicationis returned, in step 1128, to the proxy server 103. At this point, sincethe location-information-retrieving callee device 805 has knowledge ofthe IP address of the location-information-retrieving caller device 801from the invite request, the geographical location information retrievalprocess continues in FIG. 11G. Additionally, once the success indicationhas been returned 1128 to the proxy server 103, the proxy server 103receives, in step 1130, the success indication from each of thelocation-information-retrieving callee devices 805 that are logged ontothe Internet and relays, in step 1134, the success indication to thelocation-information-retrieving caller device 801, and the sessioninitiation process continues in FIG. 11C.

As shown in FIG. 11C, the location-information-retrieving caller device801 receives, in step 1138, the first success indication from the proxyserver 103, and issues, in step 1140, an acknowledgement of the receiptof the success indication. The acknowledgement is then transmitted, instep 1142, to the proxy server 103. The location-information-retrievingcaller device 801 then determines, in step 1143, whether or not thereare additional success indications. If thelocation-information-retrieving caller device 801 determines 1143 thatthere are additional success indications, then thelocation-information-retrieving caller device 801 receives, in step1144, the next success indication from the proxy server 103, and repeatsthe process until all success indications have been received 1144 andacknowledged 1140. When it is determined 1143 that there are noadditional success indications, the location-information-retrievingcaller device 801 further determines, in step 1145, whether or not onlyone success indication has been received. If only one success indicationhas been received, then the process continues to FIG. 11D. However, ifmore than one success indication has been received, then the processcontinues to FIG. 11E.

FIG. 11D shows the continuation of the process when only one successindication has been received. As shown here, if only one successindication has been received, the location-information-retrieving callerdevice 801 may obtain, in step 1150 a precise 1P address of thelocation-information-retrieving callee device 805. Once the precise IPaddress of the location-information-retrieving callee device 805 hasbeen obtained 1150, the geographical location information retrievalprocess continues in FIG. 11F. Additionally, once the single successindication has been received 1138 and an acknowledgement has been issued1140, the proxy server 103 receives, in step 1152, the acknowledgementfrom the location-information-retrieving caller device 801. Theacknowledgement is then forwarded to the location-information-retrievingcallee device 805 by the proxy server 103. Thelocation-information-retrieving callee device 805 receives theacknowledgement from the proxy server 103, thereby establishing asession between the location-information-retrieving caller device 801and the location-information-retrieving callee device 805. At thispoint, the location-information-retrieving callee device 805 may obtain,in step 1158, the precise IP address of thelocation-information-retrieving caller device 801 from the establishedsession. Once the precise IP address of thelocation-information-retrieving caller device 801 is known by thelocation-information-retrieving callee device 805, the geographicallocation information retrieval process, from the perspective of thelocation-information-retrieving callee devicelocation-information-retrieving callee device 805, continues in FIG.11G.

FIG. 11E shows the continuation of the process from FIG. 11C when morethan one success indication has been received. As shown here, the proxyserver 103 receives, in step 1166, multiple acknowledgements from the801, and forwards, in step 1168, the acknowledgements to each of thelocation-information-retrieving callee devices 805 that are logged on tothe Internet. Each of the location-information-retrieving callee devices805 receives, in step 1170, its respective acknowledgement from theproxy server 103, thereby establishing multiple sessions between thevarious location-information-retrieving callee devices 805 and thelocation-information-retrieving caller device 801. The caller at thelocation-information-retrieving caller device 801 then determines, instep 1172, which of the multiple established session is the desiredsession, and all undesired sessions are then disconnected, in step 1176.Thus, at this point, only one session remains between thelocation-information-retrieving callee device 805 and thelocation-information-retrieving caller device 801, thereby permittingthe location-information-retrieving caller device 801 to obtain, in step1174, a precise IP address of the desiredlocation-information-retrieving callee device 805. Once the precise IPaddress has been obtained 1174, the geographical location informationretrieval process, from the perspective of thelocation-information-retrieving caller device 801, continues in FIG.11F.

FIG. 11F is a flowchart showing one embodiment of a geographicallocation information retrieval process from the perspective of thelocation-information-retrieving caller device 801 once the IP address ofthe location-information-retrieving callee device 805 is known by thelocation-information-retrieving caller device 801. As shown in FIG. 11F,the location-information-retrieving caller device 801 retrieves, in step1179, the geographical location of the location-information-retrievingcallee device 805 from the information server 803. In a preferredembodiment, the retrieval 1179 of the geographical location is performedby the geographical location retrieval logic 902 (FIG. 9A). Once thegeographical location has been retrieved 1179, thelocation-information-retrieving caller device 801 requests, in step1180, information that is related to the retrieved 1179 geographicallocation from the information server 803. In a preferred embodiment, thecaller has already inputted a list of selected items 926 into thelocation-information-retrieving caller device 801. Thus, only theselected items 926 are requested by the location-information-retrievingcaller device 801. The information server 803 receives, in step 1181,the request, and obtains, in step 1182, the requested information. Theobtained 1182 information is then transmitted, in step 1183, from theinformation server 803 to the location-information-retrieving callerdevice 801. The location-information-retrieving caller device 801receives, in step 1184, the requested information, and displays, in step1185, the received information on a display 926 (FIG. 9A).

FIG. 11G is a flowchart showing one embodiment of a geographicallocation information retrieval process from the perspective of thelocation-information-retrieving callee device 805 once thelocation-information-retrieving callee device 805 has the IP address ofthe location-information-retrieving caller device 801. As shown in FIG.11G, once the IP address of the location-information-retrieving callerdevice 801 is known by the location-information-retrieving callee device805 (e.g., after the success indication has been returned), thelocation-information-retrieving callee device 805 retrieves, in step1189, the geographical location of the location-information-retrievingcaller device 801 from the information server 803. In a preferredembodiment, the retrieval 1189 of the geographical location is performedby the geographical location retrieval logic 902 (FIG. 9B). Once thegeographical location has been retrieved 1189, thelocation-information-retrieving callee device 805 requests, in step1190, information that is related to the retrieved 1073 geographicallocation from the information server 803. In a preferred embodiment, thecallee has already inputted a list of selected items 926 into thelocation-information-retrieving callee device 805. Thus, only theselected items 926 are requested by the location-information-retrievingcallee device 805. The information server 803 receives, in step 1191,the request, and obtains, in step 1192, the requested information. Theobtained 1192 information is then transmitted, in step 1193, from theinformation server 803 to the location-information-retrieving calleedevice 805. The location-information-retrieving callee device 805receives, in step 1194, the requested information, and displays, in step1159, the received information on a display 926 (FIG. 9B).

Similar to the embodiment of FIGS. 10A through 10D, thelocation-information-retrieving caller device 801 of FIGS. 11A through11G now has local geographical information associated with thelocation-information-retrieving callee device 805. Similarly, thelocation-information-retrieving callee device 805 has local geographicalinformation associated with the location-information-retrieving callerdevice 801. In this sense, the information related to the specificgeographic location of both the callee and the caller may facilitatedialogue between the callee and the caller.

FIG. 12 is a block diagram showing another embodiment of an Internettelephony system in which a location-information-retrieving callerdevice 801 and a location-information-retrieving callee device 805 arein communication with each other over the Internet 100. The embodimentof FIG. 12 includes a location-information-retrieving caller device 801,a location-information-retrieving callee device 805, a redirect server401, an information server 803, and an Internet address locationdatabase Internet address location database 807. In a preferredembodiment, the information server 803, and the Internet addresslocation database 807 are located within the Internet 100. A broadoverview of the operation begins with thelocation-information-retrieving caller device 801 initiating a sessionwith the location-information-retrieving callee device 805. In theembodiment of FIG. 12, a redirect server 401 is used to initiate thesession. During the initiation of the session, the redirect server 401relays the IP address of the location-information-retrieving calleedevice 805 to the location-information-retrieving caller device 801. Thelocation-information-retrieving caller device 801 then directlyinitiates a session with the location-information-retrieving calleedevice 805 using the IP address received from the redirect server 401.Thus, as the session is being initiated, both thelocation-information-retrieving caller device 801 and thelocation-information-retrieving callee device 805 have knowledge of theother's IP address. Once the location-information-retrieving callerdevice 801 knows the IP address of the location-information-retrievingcallee device 805, the location-information-retrieving caller device 801accesses the Internet address location database 807 to obtain ageographical location associated with the IP address of thelocation-information-retrieving callee device 805. The obtainedgeographical location is then used to further retrieve geographicallocation information associated with the location-information-retrievingcallee device 805 from an information server 803. Similarly, once thelocation-information-retrieving callee device 805 knows the IP addressof the location-information-retrieving caller device 801, thelocation-information-retrieving callee device 805 accesses the Internetaddress location database 807 to obtain a geographical locationassociated with the IP address of the location-information-retrievingcaller device 801. The obtained geographical location is then used tofurther retrieve geographical location information associated with thelocation-information-retrieving caller device 801 from the informationserver 803. The information server 803 has various information relatedto geographic locations, such as local time, local weather reports,local news, local sporting events, etc. for any given geographicallocation. Thus, the information server 803 may comprise a plurality ofdatabases (not shown) such as Internet servers for weather (e.g.,www.weather.com, etc.), for sports (e.g., www.espn.com, etc.), for news(e.g., www.cnn.com, etc.), or a plethora of other Internet accessibledatabases. Alternatively, the information server 803 may be a dedicatedserver or system configured to locally store all of the geographicallocation information. Thus, either the location-information-retrievingcaller device 801 or the location-information-retrieving callee device805 may access the information server 803 to obtain informationassociated with a specific geographical location.

FIGS. 13A through 13D are flowcharts showing one embodiment of a processfor obtaining location information in the Internet telephony system ofFIG. 12. As shown in FIG. 13A, the process begins when anlocation-information-retrieving caller device 801 sends, in step 1304,an invite request having a URI of a callee to a redirect server 401. Theredirect server receives, in step 1306, the invite request having theURI, and contacts, in step 1308, a location service (not shown) usingthe received TRI. Upon contacting the location service (not shown), theredirect server 401 obtains, in step 1310, a precise IP address of alocation-information-retrieving callee device 805 using the URI. The IPaddress is returned to the location-information-retrieving caller device801, which receives, in step 1314, the IP address from the redirectserver 401. At this point, since the location-information-retrievingcaller device 801 has knowledge of the IP address of thelocation-information-retrieving callee device 805, it may retrievegeographical location information related to thelocation-information-retrieving callee device 805. This is shown in FIG.13C. Additionally, once the IP address has been received from theredirect server 401, the location-information-retrieving caller device801 issues, in step 1316, an acknowledgement of the receipt of the IPaddress. The acknowledgement is transmitted, in step 1318, to theredirect server 401, which receives, in step 1320, the acknowledgementfrom the location-information-retrieving caller device 801. Thelocation-information-retrieving caller device 801 then sends, in step1322, an invite request directly to the obtained IP address of thelocation-information-retrieving callee device 805, which is received, instep 1324, by the location-information-retrieving callee device 805, andthe initiation of the session continues in FIG. 13B.

Continuing with FIG. 13B, the location-information-retrieving calleedevice 805, upon receiving the invite request, returns, in step 1334, asuccess indication to the location-information-retrieving caller device801. At this point, the location-information-retrieving callee device805 has knowledge of the IP address of thelocation-information-retrieving caller device 801 from the inviterequest, and, therefore, may initiate retrieval of geographical locationinformation associated with the location-information-retrieving callerdevice 801. This is shown in FIG. 13D. The returned success indicationis received, in step 1336, by the location-information-retrieving callerdevice 801, which issues, in step 1338, an acknowledgement of thereceipt of the success indication. The acknowledgement is transmitted,in step 1340, to the location-information-retrieving callee device 805,which receives, in step 1342, the acknowledgement from thelocation-information-retrieving caller device 801, thereby establishinga session between the location-information-retrieving caller device 801and the location-information-retrieving callee device 805.

FIG. 13C is a flowchart showing one embodiment of a geographicallocation information retrieval process from the perspective of thelocation-information-retrieving caller device 801 once thelocation-information-retrieving caller device 801 has the IP address ofthe location-information-retrieving callee device 805. As shown in FIG.13C, once the IP address of the location-information-retrieving calleedevice 805 is received 1314 by the location-information-retrievingcaller device 801, the location-information-retrieving caller device 801retrieves, in step 1353, the geographical location of thelocation-information-retrieving callee device 805 from the informationserver 803. In a preferred embodiment, the retrieval 1353 of thegeographical location is performed by the geographical locationretrieval logic 902 (FIG. 9A). Once the geographical location has beenretrieved 1353, the location-information-retrieving caller device 801requests, in step 1354, information that is related to the retrieved1353 geographical location from the information server 803. In apreferred embodiment, the caller has already inputted a list of selecteditems 926 into the location-information-retrieving caller device 801.Thus, only the selected items 926 are requested by thelocation-information-retrieving caller device 801. The informationserver 803 receives, in step 1355, the request, and obtains, in step1356, the requested information. The obtained 1356 information is thentransmitted, in step 1357, from the information server 803 to thelocation-information-retrieving caller device 801. Thelocation-information-retrieving caller device 801 receives, in step1358, the requested information, and displays, in step 1359, thereceived information on a display 926 (FIG. 9A).

FIG. 13D is a flowchart showing one embodiment of a geographicallocation information retrieval process from the perspective of thelocation-information-retrieving callee device 805 once thelocation-information-retrieving callee device 805 has the IP address ofthe location-information-retrieving caller device 801. As shown in FIG.13D, once the IP address of the location-information-retrieving callerdevice 801 is known by the location-information-retrieving callee device805 (e.g., after the success indication has been returned), thelocation-information-retrieving callee device 805 retrieves, in step1373, the geographical location of the location-information-retrievingcaller device 801 from the information server 803. In a preferredembodiment, the retrieval 1373 of the geographical location is performedby the geographical location retrieval logic 902 (FIG. 9B). Once thegeographical location has been retrieved 1373, thelocation-information-retrieving callee device 805 requests, in step1374, information that is related to the retrieved 1373 geographicallocation from the information server 803. In a preferred embodiment, thecallee has already inputted a list of selected items 926 into thelocation-information-retrieving callee device 805. Thus, only theselected items 926 are requested by the location-information-retrievingcallee device 805. The information server 803 receives, in step 1375,the request, and obtains, in step 1376, the requested information. Theobtained 1376 information is then transmitted, in step 1377, from theinformation server 803 to the location-information-retrieving calleedevice 805. The location-information-retrieving callee device 805receives, in step 1378, the requested information, and displays, in step1379, the received information on a display 926 (FIG. 9B).

Having described several embodiments of systems and methods forretrieving geographical location information in an Internet telephonysystem, attention is now turned to FIGS. 14 through 16D, which showembodiments of a system and method for retrieving geographical locationinformation in a PSTN telephony system.

FIG. 14 is a block diagram showing a PSTN telephony system, in which aPSTN caller telephone 1403 and a PSTN callee telephone 1413 are incommunication with each other. As shown in FIG. 14, a PSTN caller site1401 and a PSTN callee site 1411 are configured to communicate with eachother through a PSTN 600. The PSTN caller site 1401 includes a PSTNcaller telephone 1403 and a PSTN caller computer system 1405, while thePSTN callee site 1411 includes a PSTN callee telephone 1413 and a PSTNcallee computer system 1415. The PSTN 600 includes a caller serviceswitching point (SSP) 603, which is configured to connect both outgoingand incoming calls to the PSTN caller telephone 1403 through the PSTN600. The PSTN 600 also includes a callee SSP 607, which is similarlyconfigured to connect outgoing and incoming calls to the PSTN calleetelephone 1413. Both the caller SSP 603 and the callee SSP 607 areconfigured to communicate with a service control point (SCP) 605, which,as is well-known, performs a variety of advanced intelligent network(AIN) functions including area number calling service, disaster recoveryservice, do not disturb service, and 5-digit extension dialing service,etc. In the embodiment of FIG. 14, the SCP 605 is configured to furtherexecute part of the location information retrieval function. In thissense, the SCP 605 communicates with a location server 1407 on theInternet 100, which has information correlating telephone numbers withgeographical locations. For example, the location server 1407 may haveinformation that correlates a telephone area code to a specificgeographical location, thereby permitting look-up of a geographicallocation if a telephone area code is known. More specifically, if anarea code is associated with a broad geographic region, then thelocation server 1407 may have information that more specificallycorrelates a telephone number to, for example, a city or a county withinthe broad geographical region.

The operating environment shown in FIG. 14 also includes an informationserver 803 located, preferably, in the Internet 100. The informationserver 803 has various information related to geographic locations, suchas local time, local weather reports, local news, local sporting events,etc. The information server 803 may comprise a plurality of databases(not shown) such as Internet servers for weather (e.g., www.weather.com,etc.), for sports (e.g., www.espn.com, etc.), for news (e.g.,www.cnn.com, etc.), or a plethora of other Internet accessibledatabases. Alternatively, the information server 803 may be a dedicatedserver or system configured to locally store all of the geographicallocation information. Thus, either a PSTN caller computer system 1405 ora PSTN callee computer system 1415 may access the information server 803to obtain information associated with a specific geographical location.

A broad overview of one embodiment of the operation of the system ofFIG. 14 may begin with a caller programming into the PSTN callercomputer system 1405 a list of selected items associated with a callee.Similarly, the callee may program into the PSTN callee computer system1415 a list of selected items associated with the caller. When thecaller, who is logged on to the Internet 100 at the PSTN caller site1401, dials a telephone number using the PSTN caller telephone 1403, thedialed call is processed by the caller SSP 603, which contacts the SCP605 for further call processing. The SCP 605 contacts a callee SSP 607with a connection request in order to connect the call from the caller.Additionally, the SCP 605 issues an instruction to a location server1407 to correlate the dialed telephone number to a specific geographicallocation and forward the geographical location to the PSTN callercomputer system 1405. The location server 1407 determines whether or notthe PSTN caller computer system 1405 is logged on at the PSTN callersite 1401, and if it is determined that the PSTN caller computer system1405 is logged on, then the location server 1407 correlates the dialedtelephone number to a specific geographical location, and relays thegeographical location to the PSTN caller computer system 1405. The PSTNcaller computer system 1405 receives the geographical location, andaccesses the information server 802, which has information related tothe geographical location, and retrieves the desired information. Theretrieved information is displayed for the caller at the PSTN callersite 1401.

During this time, the callee SSP 607 accepts the connection request andconnects the call through to the PSTN callee telephone 1413. At thispoint, the SCP 605 further issues an instruction to a location server1407 to correlate the caller's telephone number to a specificgeographical location and forward the geographical location to the PSTNcallee computer system 1415. The location server 1407 determines whetheror not the PSTN callee computer system 1415 is logged on at the PSTNcallee site 1411, and if it is determined that the PSTN callee computersystem 1415 is logged on, then the location server 1407 correlates thecaller's telephone number to a specific geographical location, andrelays the geographical location to the PSTN callee computer system1415. The PSTN callee computer system 1415 receives the geographicallocation, and accesses the information server 802, which has informationrelated to the geographical location, and retrieves the desiredinformation. The retrieved information is displayed for the caller atthe PSTN callee site 1411. Specific embodiments of a PSTN callercomputer system 1405 and a PSTN callee computer system 1415 are shown inFIGS. 15A and 15B, respectively.

FIG. 15A is a block diagram showing the PSTN caller computer system 1405of FIG. 14 in greater detail. As shown in FIG. 15A, the PSTN callercomputer system 1405 comprises an input device 1518, which may be acomputer keyboard, a mouse, a numeric keypad, or any number ofwell-known input peripheral devices. Additionally, the PSTN callercomputer system 1405 comprises information collection logic 1522, whichincludes a list of items 1528 and selection logic 1524. The list ofitems 1528 may be a list showing available information for a specificgeographical location, such as local time, local weather reports, localsporting events, local news, etc. from which a user may select desireditems. For example, if a user desires to only find out the local newsand local weather report for a given location, then the user may selectonly the local news and local weather report from the list of items. Inthis sense, the input device 1518 may be used to input a user'sselection. The selected items 1530 may be stored in the informationcollection logic 1522 for later use. Since systems and methods forselecting items from a list is well-known in the art, further discussionof the selection of the items is omitted here.

In addition to the input device 1518 and the information collectionlogic 1522, the PSTN caller computer system 1415 further comprisesgeographical location logic 1502, an interface 1512 having a receiver1514 and a transmitter 1516, and a display unit 1526. The interface 1512is configured to receive information via the receiver 1514 and transmitinformation via the transmitter 1516. In one embodiment, the interface1512 receives the geographical location from the location server 1407,as well as the geographical location information from the informationserver 803. The geographical location logic 1502 stores the specificgeographical location that has been received from the location server1407. This information is used by the information collection logic 1522during the retrieval of geographical location information associatedwith the callee's location. Once the desired information has beencollected by the information collection logic 1522, the collectedinformation may be displayed on the display unit. As such, the displayunit 1526 may be a computer monitor or any number of known displaydevices.

FIG. 15B is a block diagram showing the PSTN callee computer system 1415of FIG. 14 in greater detail. Since, in this embodiment, the operationof the PSTN callee computer system 1415 is similar to the operation ofthe PSTN caller computer system 1405, the PSTN callee computer system1415 is similar to the PSTN caller computer system 1405 of FIG. 15A. Asshown in FIG. 15B, the PSTN callee computer system 1415 comprises aninput device 1518, which may be a computer keyboard, a mouse, a numerickeypad, or any number of well-known input peripheral devices.Additionally, the PSTN callee computer system 1415 comprises informationcollection logic 1522, which includes a list of items 1528 and selectionlogic 1524. Similar to FIG. 15A, the list of items 1528 may be a listshowing available information for a specific geographical location, suchas local time, local weather reports, local sporting events, local news,etc. from which a user may select desired items. For example, if a userdesires to only find out the local news and local weather report for agiven location, then the user may select only the local news and localweather report from the list of items. In this sense, the input device1518 may be used to input a user's selection. The selected items 1530may be stored in the information collection logic 1522 for later use.Since systems and methods for selecting items from a list is well-knownin the art, further discussion of the selection of the items is omittedhere.

In addition to the input device 1518 and the information collectionlogic 1522, the PSTN callee computer system 1415 further comprisesgeographical location logic 1502, an interface 1512 having a receiver1514 and a transmitter 1516, and a display unit 1526. The interface 1512is configured to receive information via the receiver 1514 and transmitinformation via the transmitter 1516. In one embodiment, the interface1512 receives the geographical location from the location server 1407,as well as the geographical location information from the informationserver 803. The geographical location logic 1502 stores the specificgeographical location that has been received from the location server1407. This information is used by the information collection logic 1522during the retrieval of geographical location information associatedwith the caller's location. Once the desired information has beencollected by the information collection logic 1522, the collectedinformation may be displayed on the display unit. As such, the displayunit 1526 may be a computer monitor or any number of known displaydevices.

Having described one embodiment of a PSTN telephony system havinggeographical location information retrieval capabilities, attention isturned to FIGS. 16A through 16D, which show one embodiment of a processfor obtaining geographical location information in the PSTN telephonysystem of FIGS. 14 through 15B.

FIGS. 16A through 16D are flowcharts showing one embodiment of a processfor obtaining location information in a PSTN telephony system. In apreferred embodiment, as shown in FIG. 16A, the process begins when afeature code is entered, in step 1602, and a telephone number is dialed,in step 1606, at a PSTN caller telephone 1403. In an alternativeembodiment, the process may begin with the dialing 1606 of the telephonenumber, and the information retrieval process may be disabled with theentry 1604 of the feature code. In any event, in the preferredembodiment, once the feature code has been entered 1604 and the thetelephone number dialed 1606, a caller service switching point (SSP) 603receives, in step 1608, the dialed number with the feature code. Thecaller SSP 603 issues, in step 1610, a query having the dialed telephonenumber to the service control point (SCP) 605, which receives, in step1612, the query having the dialed telephone number from the caller SSP603. The SCP 605 instructs, in step 1614, the caller SSP 603 to continuethe call processing, and also issues, in step 1620, an instruction to alocation server 1407 to retrieve a geographical location correlated tothe dialed telephone number. The instruction to continue call processingis received, in step 1616, by the caller SSP 603, and the callprocessing continues in FIG. 16C. The issued 1620 instruction to thelocation server 1407 is received, in step 1622, by the location server1407, which determines, in step 1624, whether or not the caller islogged on at a PSTN caller computer system 1405 at the PSTN caller site1401. If it is determined that the caller is not logged on, then theretrieval of geographical location information is terminated, in step1626. If, on the other hand, it is determined 1624 that the caller islogged on to a PSTN caller computer system 1405, then the geographicallocation information retrieval process continues in FIG. 16B.

FIG. 16B is a flowchart showing one embodiment of the geographicalinformation retrieval process as seen from the perspective of the PSTNcaller. Once the location server 1407 has determined 1624 that a calleris logged on to a PSTN caller computer system 1405, then the locationserver 1407 correlates, in step 1642, the dialed telephone number to aspecific geographical location. In one embodiment, this may be doneusing a lookup table or another database that has telephone numberscorrelated to geographical locations. Since databases correlatinggeographical locations with telephone numbers are well-known in the art,further discussion of the correlating of geographical locations withtelephone numbers is omitted here. Once a geographical location has beencorrelated to the dialed telephone number, the geographical location isrelayed, in step 1644, by the location server to the PSTN callercomputer system 1405. The PSTN caller computer system receives, in step1646, the geographical location using geographical location logic 1502(FIG. 15A), and issues, in step 1648, an instruction for informationassociated with the geographical location using information collectionlogic 1522 (FIG. 15A). Since, in a preferred embodiment, the process isexecuted by the PSTN caller computer system 1405 of FIG. 15A, the PSTNcaller computer system 1405 already has a list of selected items 1528(FIG. 15A) related to a geographical location, which the caller desiresto collect. Hence, in the preferred embodiment, the issued 1648instruction includes the list of items (e.g., local time, local weather,local sports, local news, etc.) selected by the caller. Once theinstruction has been issued 1648 by the information collection logic1522 (FIG. 15A), the information server 803 receives, in step 1650, theinstruction, and obtains, in step 1652, the information associated withthe specific geographical location. The obtained 1654 information isthen relayed, in step 1654, to the PSTN caller computer system 1405,which receives, in step 1656, the location information through theinterface 1512 (FIG. 15A) and displays, in step 1658, the informationfor the caller using the display unit 1526 (FIG. 15A).

During this time, the call connection process continues in FIG. 16C.Once the continue instruction has been received 1616 by the caller SSP603, the caller SSP 603 issues, in step 1662, a connection request tothe callee SSP 609. The callee SSP 609 receives, in step 1664, theconnection request, which also includes the telephone number of the PSTNcaller telephone 1403. The callee SSP 609 issues, in step 1666, a queryto the SCP 605 using the telephone number of the PSTN caller telephone1403, and the query is received, in step 1668, by the SCP 605. The SCP605 then instructs, in step 1670, the callee SSP to continue the callprocessing, and also issues, in step 1678, an instruction to thelocation server 1407 for a geographical location that correlates to thetelephone number of the PSTN caller telephone 1403. The callee SSP 609receives, in step 1672, the continue instruction from the SCP 605, andaccepts, in step 1674, the connection request, thereby connecting, instep 1676, the telephone call between the PSTN caller telephone 1403 andthe PSTN callee telephone 1413.

While the call is being connected by the callee SSP 609, the locationserver 1407 receives, in step 1680, the instruction issued 1678 by theSCP 605. Upon receiving 1680 the instruction, the location server 1407determines, in step 1682, whether or not the callee is logged on at aPSTN callee computer system 1415. If it is determined 1682 that thecallee is not logged on, then the data retrieval process ends, in step1684. If, however, it is determined 1682 that the callee is logged on,then the geographical location retrieval process continues in FIG. 16D.

FIG. 16D is a flowchart showing one embodiment of the geographicalinformation retrieval process as seen from the perspective of the PSTNcallee. Once the location server 1407 has determined 1682 that a calleeis logged on to a PSTN callee computer system 1415, then the locationserver 1407 correlates, in step 1628, the telephone number of the PSTNcaller telephone 1403 to a specific geographical location. In oneembodiment, this may be done using a lookup table or another databasethat has telephone numbers correlated to geographical locations. Sincedatabases correlating geographical locations with telephone numbers arewell-known in the art, further discussion of the correlating ofgeographical locations with telephone numbers is omitted here. Once ageographical location has been correlated to the telephone number of thePSTN caller telephone 1403, the geographical location is relayed, instep 1630, by the location server 1407 to the PSTN callee computersystem 1415. The PSTN callee computer system 1415 receives, in step1632, the geographical location using geographical location logic 1502(FIG. 15B), and issues, in step 1634, an instruction for informationassociated with the geographical location using information collectionlogic 1522 (FIG. 15B). Since, in a preferred embodiment, the process isexecuted by the PSTN callee computer system 1415 of FIG. 15B, the PSTNcallee computer system 1415 already has a list of selected items 1528(FIG. 15B) related to a geographical location, which the callee desiresto collect. Hence, in the preferred embodiment, the issued 1634instruction includes the list of items (e.g., local time, local weather,local sports, local news, etc.) selected by the callee. Once theinstruction has been issued 1634 by the information collection logic1522 (FIG. 15B), the information server 803 receives, in step 1636, theinstruction, and obtains, in step 1686, the information associated withthe specific geographical location. The obtained 1686 information isthen relayed, in step 1688, to the PSTN callee computer system 1415,which receives, in step 1690, the location information through theinterface 1512 (FIG. 15B) and displays, in step 1692, the informationfor the callee using the display unit 1526 (FIG. 15B).

The geographical location retrieval logic 902 (FIGS. 9A and 9B), theInternet telephony logic 930 (FIGS. 9A and 9B), the informationcollection logic 922, 1522 (FIGS. 9A, 9B, 15A, and 15B), and thegeographical location logic 1502 (FIGS. 15A and 15B) of the presentinvention can be implemented in hardware, software, firmware, or acombination thereof. In the preferred embodiment(s), the geographicallocation retrieval logic 902 (FIGS. 9A and 9B), the Internet telephonylogic 930 (FIGS. 9A and 9B), the information collection logic 922, 1522(FIGS. 9A, 9B, 15A, and 15B), and the geographical location logic 1502(FIGS. 15A and 15B) is implemented in software or firmware that isstored in a memory and that is executed by a suitable instructionexecution system. If implemented in hardware, as in an alternativeembodiment, the geographical location retrieval logic 902 (FIGS. 9A and9B), the Internet telephony logic 930 (FIGS. 9A and 9B), the informationcollection logic 922, 1522 (FIGS. 9A, 9B, 15A, and 15B), and thegeographical location logic 1502 (FIGS. 15A and 15B) can be implementedwith any or a combination of the following technologies, which are allwell known in the art: a discrete logic circuit(s) having logic gatesfor implementing logic functions upon data signals, an applicationspecific integrated circuit (ASIC) having appropriate combinationallogic gates, a programmable gate array(s) (PGA), a field programmablegate array (FPGA), etc.

Any process descriptions or blocks in flow charts should be understoodas representing modules, segments, or portions of code which include oneor more executable instructions for implementing specific logicalfunctions or steps in the process, and alternate implementations areincluded within the scope of the preferred embodiment of the presentinvention in which functions may be executed out of order from thatshown or discussed, including substantially concurrently or in reverseorder, depending on the functionality involved, as would be understoodby those reasonably skilled in the art of the present invention.

Although an exemplary embodiment of the present invention has been shownand described, it will be apparent to those of ordinary skill in the artthat a number of changes, modifications, or alterations to the inventionas described may be made, none of which depart from the spirit of thepresent invention. For example, while specific SIP embodiments have beenshown to better illustrate several aspects of the invention, it will beclear to one of ordinary skill in the art that the above-describedmethod may be implemented in any Internet telephony system. All suchchanges, modifications, and alterations should therefore be seen aswithin the scope of the present invention.

1. A data-gathering system, comprising: an Internet address locationdatabase having a plurality of Internet addresses and a plurality ofgeographical locations, wherein each of the plurality of Internetaddresses correlates to one of the plurality of geographical locations;an information server having information associated with a plurality ofgeographical locations; a first Internet telephony device configured toreceive an invite to an Internet telephony session from a secondInternet telephony device, wherein the invite comprises an Internetaddress of the second Internet telephony device, wherein the firstInternet telephony device is further configured to retrieve ageographical location from the Internet address location database usingthe Internet address of the second Internet telephony device, whereinthe retrieved geographical location correlates to the Internet address.2. The system of claim 1, wherein the information server comprises adatabase having a plurality of news reports, wherein each of theplurality of news reports is a news report on a different geographicallocation.
 3. The system of claim 1, wherein the information servercomprises a database having a plurality of information on sportingevents, wherein each of the plurality of information on sporting eventsis a associated with a different geographical location.
 4. The system ofclaim 1, wherein the information server comprises a database having aplurality of weather reports, wherein each of the plurality of weatherreports is a weather report on a different geographical location.
 5. Adata-gathering device, comprising: Internet telephony logic configuredto receive an invite to an Internet telephony session from an Internettelephony caller device, wherein the invite to the Internet telephonysession includes an Internet address of the Internet telephony callerdevice; geographical location retrieval logic configured to retrieve ageographical location corresponding to the Internet address of theInternet telephony caller device; and information collection logicconfigured to collect geographical location information associated withthe retrieved geographical location.
 6. The device of claim 5, whereinthe information collection logic is further configured to collect localnews associated with the received geographical location.
 7. The deviceof claim 5, wherein the information collection logic is furtherconfigured to collect a local weather report associated with thereceived geographical location.
 8. The device of claim 5, wherein theinformation collection logic is further configured to collect a localtime associated with the received geographical location.
 9. The deviceof claim 5, wherein the information collection logic is furtherconfigured to collect information on local sporting events associatedwith the received geographical location.
 10. A data-gathering method,comprising the steps of: receiving an invite to an Internet telephonysession, wherein the invite to the Internet telephony session includesan Internet address of a Internet telephony caller device; retrieving ageographical location corresponding to the Internet address of theInternet telephony caller device; and collecting geographical locationinformation associated with the retrieved geographical location.
 11. Themethod of claim 10, wherein the step of collecting information comprisesthe step of requesting information associated with a geographicallocation from an information server.
 12. The method of claim 10, whereinthe step of collecting information comprises the step of requesting alocal weather report, wherein the local weather report is associatedwith the received geographical location.
 13. The method of claim 10,wherein the step of collecting information comprises the step ofrequesting a local news report, wherein the local news report isassociated with the received geographical location.
 14. The method ofclaim 10, wherein the step of collecting information comprises the stepof requesting a local time associated with the received geographicallocation.
 15. The method of claim 10, wherein the step of collectinginformation comprises the step of requesting information on localsporting events, wherein the information on local sporting events isassociated with the received geographical location.